std::literals::chrono_literals::operator""s
Определён в заголовочном файле <chrono> | ||
|---|---|---|
constexpr std::chrono::seconds
operator""s( unsigned long long secs );
| (1) | (начиная с C++14) |
constexpr std::chrono::duration</*unspecified*/>
operator""s( long double secs );
| (2) | (начиная с C++14) |
Создаёт литерал std::chrono::duration, представляющий секунды.
std::chrono::seconds(secs).std::chrono::seconds.Параметры
| secs | - | количество секунд |
Возвращаемое значение
Литерал std::chrono::duration.
Возможная реализация
constexpr std::chrono::seconds operator""s(unsigned long long s)
{
return std::chrono::seconds(s);
}
constexpr std::chrono::duration<long double> operator""s(long double s)
{
return std::chrono::duration<long double>(s);
}
|
Примечания
Этот оператор объявлен в пространстве имён std::literals::chrono_literals, где и literals, и chrono_literals являются встроенными пространствами имён. Доступ к этому оператору можно получить с помощью:
-
using namespace std::literals, -
using namespace std::chrono_literalsили -
using namespace std::literals::chrono_literals.
Кроме того, в пространстве имён std::chrono директива using namespace literals::chrono_literals; предоставляется стандартной библиотекой, поэтому, если программист использует using namespace std::chrono; для доступа к классам библиотеки chrono, соответствующие операторы литералов также становятся видимыми.
std::string также определяет operator""s для представления литеральных объектов типа std::string, однако это строковый литерал: 10s — это десять секунд, а "10"s — строка из двух символов.
Пример
#include <chrono>
#include <iostream>
int main()
{
using namespace std::chrono_literals;
std::chrono::seconds halfmin = 30s;
std::cout << "Half a minute is " << halfmin.count() << " seconds"
" (" << halfmin << ").\n"
"A minute and a second is " << (1min + 1s).count() << " seconds.\n";
std::chrono::duration moment = 0.1s;
std::cout << "A moment is " << moment.count() << " seconds"
" (" << moment << ").\n"
"And thrice as much is " << (moment + 0.2s).count() << " seconds.\n";
}
Вывод:
Half a minute is 30 seconds (30s). A minute and a second is 61 seconds. A moment is 0.1 seconds (0.1s). And thrice as much is 0.3 seconds.
См. также
| создаёт новую длительность (открытая функция-член std::chrono::duration<Rep,Period>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/chrono/operator%22%22s